home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Games of Daze
/
Infomagic - Games of Daze (Summer 1995) (Disc 1 of 2).iso
/
x2ftp
/
msdos
/
math
/
nrpas13
/
gser.pas
< prev
next >
Wrap
Pascal/Delphi Source File
|
1991-04-29
|
702b
|
30 lines
PROCEDURE gser(a,x: real; VAR gamser,gln: real);
LABEL 1;
CONST
itmax=100;
eps=3.0e-7;
VAR
n: integer;
sum,del,ap: real;
BEGIN
gln := gammln(a);
IF (x <= 0.0) THEN BEGIN
IF (x < 0.0) THEN BEGIN
writeln('pause in GSER - x less than 0'); readln
END;
gamser := 0.0
END ELSE BEGIN
ap := a;
sum := 1.0/a;
del := sum;
FOR n := 1 TO itmax DO BEGIN
ap := ap+1.0;
del := del*x/ap;
sum := sum+del;
IF (abs(del) < abs(sum)*eps) THEN GOTO 1
END;
writeln('pause in GSER - a too large, itmax too small'); readln;
1: gamser := sum*exp(-x+a*ln(x)-gln)
END
END;